刚刚看了下面的题解,貌似有桶排的有set的,那么我就要用map了!(连map都没人用吗?)
头文件
#include <iostream>
#include <map>
using namespace std;
准备阶段——输入
map<int, bool> have;
int n;
cin>>n;
int k;
for(int i=0;i<n;i++)
{
cin>>k;
//剩下的下一阶段介绍
}
have是一个以int类型为索引存储bool类型的map。
根据题意可以写出输入部分:输入询问个数n,再输入n个询问内容k。
判断出现与否
for(int i=0;i<n;i++)
{
cin>>k;
if(have[k]) have.erase(k);//$
else have[k] = true;//%
}
其中$行表示,如果k出现过,就把它从have中删除;
%行表示,否则将它加入have中。
统计次数
cout<<have.size()<<endl;
调用STL的统计大小的函数即可。
综合以上,得
#include <iostream>
#include <map>
using namespace std;
map<int, bool> have;
int main()
{
int n;
cin>>n;
int k;
for(int i=0;i<n;i++)
{
cin>>k;
if(have[k]) have.erase(k);
else have[k] = true;
}
cout<<have.size()<<endl;
return 0;
}